%module Scopes

%{
#include "net.h"
#include "scopes.h"
#include "sbml.h"
#include "findseeds.h"
#include "netstruct.h"
#include "array.h"
%}

typedef size_t size_type;

%include "std_map.i"
%include "std_string.i"
%include "std_vector.i"

%include array.h
%include netstruct.h
%include net.h
%include findseeds.h

%template(VSS) std::vector<State*>;

%include scopes.h
%include sbml.h

%template(nodemap) std::map<std::string, unsigned int>;
%template(_VS) std::vector<size_t>;
%template(VS) array<size_t>;
%template(_VC) std::vector<unsigned char>;
%template(VC) array<unsigned char>;
%template(Scope) __scope<unsigned char>;

%newobject combine;

%template(State) __state<unsigned char>;
